Files
mtgodot-poc/audit/port-map/EterLib/IME.cpp.json
T
shenleiandClaude Opus 5.5 a46093104c layout: restructure into src/ tests/ android/ scripts/ tools/
- extension/src/{port,platform,codepage} -> src/; native_render -> src/host
  (+ dxt, shaders/); libgr2 -> src/gr2; extension/third_party -> third_party
- extension/tests -> tests/port, libgr2/tests -> tests/gr2
- android-native -> android (build.sh, push-client.sh moved in)
- script -> scripts; tools/40250 -> tools/server; oracle -> tools/granny-oracle;
  perf tools -> tools/perf
- all build trees under build/ (native, release, android, port-gate)
- xrender:: CMake aliases -> mt::; port-map ledger impl paths rewritten

No code changes. ctest 15/15, port_gate macos+android PASS, port_map check 0 errors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 19:08:19 +09:00

713 lines
45 KiB
JSON

{
"reference": "EterLib/IME.cpp",
"reference_sha256": "19a16dd5ac776591a7e2def2564102ea86d7e4a98f67c4bcd585cb8a7376f611",
"priority": "P4",
"contracts": [],
"functions": {
"CIME::CIME": {
"status": "ADAPTED",
"impl": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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": [
"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": "tests/port/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)"
}
}
}