{ "reference": "EterLib/IME.cpp", "reference_sha256": "19a16dd5ac776591a7e2def2564102ea86d7e4a98f67c4bcd585cb8a7376f611", "priority": "P4", "contracts": [], "functions": { "CIME::CIME": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::CIME" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::~CIME": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::~CIME" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::Initialize": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::Initialize" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::Uninitialize": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::Uninitialize" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::UseDefaultIME": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::UseDefaultIME" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::IsIMEEnabled": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::IsIMEEnabled" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::EnableIME": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::EnableIME" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::DisableIME": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::DisableIME" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::EnableCaptureInput": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::EnableCaptureInput" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::DisableCaptureInput": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::DisableCaptureInput" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::IsCaptureEnabled": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::IsCaptureEnabled" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::Clear": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::Clear" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetReading": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetReading" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetReadingError": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetReadingError" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::SetMax": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::SetMax" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::SetUserMax": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::SetUserMax" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::SetText": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::SetText" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetText": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetText" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetCodePageText": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetCodePageText" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetCodePage": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetCodePage" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetCandidatePageCount": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetCandidatePageCount" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetCandidateCount": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetCandidateCount" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetCandidate": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetCandidate" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetCandidateSelection": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetCandidateSelection" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::SetInputMode": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::SetInputMode" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetInputMode": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetInputMode" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::SetNumberMode": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::SetNumberMode" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::SetStringMode": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::SetStringMode" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::AddExceptKey": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::AddExceptKey" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::ClearExceptKey": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::ClearExceptKey" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::__IsWritable": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::__IsWritable" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::EnablePaste": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::EnablePaste" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::PasteTextFromClipBoard": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::PasteTextFromClipBoard" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::FinalizeString": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::FinalizeString" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetCompLen": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetCompLen" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetULBegin": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetULBegin" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetULEnd": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetULEnd" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::CloseCandidateList": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::CloseCandidateList" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::CloseReadingInformation": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::CloseReadingInformation" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::ChangeInputLanguage": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::ChangeInputLanguage" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::ChangeInputLanguageWorker": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::ChangeInputLanguageWorker" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::SetSupportLevel": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::SetSupportLevel" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::IncCurPos": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::IncCurPos" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::DecCurPos": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::DecCurPos" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetCurPos": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetCurPos" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::SetCurPos": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::SetCurPos" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::DelCurPos": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::DelCurPos" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::PasteString": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::PasteString" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::InsertString": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::InsertString" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::OnChar": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::OnChar" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetCodePageFromLang": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetCodePageFromLang" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::CompositionProcess": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::CompositionProcess" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::CompositionProcessBuilding": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::CompositionProcessBuilding" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::ResultProcess": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::ResultProcess" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::AttributeProcess": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::AttributeProcess" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::CandidateProcess": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::CandidateProcess" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::ReadingProcess": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::ReadingProcess" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::IsMax": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::IsMax" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetImeId": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetImeId" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::GetReadingWindowOrientation": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::GetReadingWindowOrientation" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::SetupImeApi": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::SetupImeApi" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "_strtoul": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:_strtoul" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::CheckInputLocale": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::CheckInputLocale" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::CheckToggleState": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::CheckToggleState" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::SetupSinks": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::SetupSinks" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::ReleaseSinks": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::ReleaseSinks" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::CUIElementSink::CUIElementSink": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::CUIElementSink::CUIElementSink" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::CUIElementSink::~CUIElementSink": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::CUIElementSink::~CUIElementSink" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::CUIElementSink::QueryInterface": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::CUIElementSink::QueryInterface" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::CUIElementSink::BeginUIElement": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::CUIElementSink::BeginUIElement" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::CUIElementSink::UpdateUIElement": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::CUIElementSink::UpdateUIElement" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::CUIElementSink::EndUIElement": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::CUIElementSink::EndUIElement" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::UpdateImeState": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::UpdateImeState" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::CUIElementSink::OnActivated": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::CUIElementSink::OnActivated" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::CUIElementSink::OnChange": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::CUIElementSink::OnChange" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::MakeReadingInformationString": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::MakeReadingInformationString" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::MakeCandidateStrings": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::MakeCandidateStrings" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::GetUIElement": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::GetUIElement" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::CurrentInputLocaleIsIme": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::CurrentInputLocaleIsIme" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::EnableUiUpdates": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::EnableUiUpdates" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::GetCompartments": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::GetCompartments" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CTsfUiLessMode::SetupCompartmentSinks": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CTsfUiLessMode::SetupCompartmentSinks" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::WMInputLanguage": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::WMInputLanguage" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::WMStartComposition": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::WMStartComposition" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::WMComposition": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::WMComposition" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::WMEndComposition": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::WMEndComposition" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::WMNotify": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::WMNotify" ], "note": "no IMM/TSF under Godot: composition arrives as committed text (PythonBoot::UIChar → InsertString + OnUpdate); body is a no-op/constant", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" }, "CIME::WMChar": { "status": "ADAPTED", "impl": [ "extension/src/platform/EterLib/IME.cpp:CIME::WMChar" ], "note": "40250 body verbatim in platform/ (the file also holds the IMM/TSF-free no-ops); DelCurPos uses memmove for the overlapping wcscpy", "test": "extension/tests/port_login_flow_test.cpp (login id/password typed via UIChar/UIIMEKeyDown incl. LEFT/DELETE/BACK/TAB/RETURN; in-game chat CG_CHAT) + project/python_game_render_test.gd (Godot key events)" } } }