diff options
| author | Brian Potchik <brian@vector35.com> | 2025-07-02 23:48:32 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2025-07-02 23:48:32 -0400 |
| commit | 246f1f72ad2418930ac8837f0788d09a2b24ee6b (patch) | |
| tree | e99fab87b8bec6f8e6f8b60f546c285d41a494c6 /lang/c/pseudoc.cpp | |
| parent | 48e705fd2ea86f985483312fa8ac98d5c5300466 (diff) | |
Add outlining support for wmemcpy.
Diffstat (limited to 'lang/c/pseudoc.cpp')
| -rw-r--r-- | lang/c/pseudoc.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lang/c/pseudoc.cpp b/lang/c/pseudoc.cpp index 6f3c58ab..4d585966 100644 --- a/lang/c/pseudoc.cpp +++ b/lang/c/pseudoc.cpp @@ -1260,6 +1260,7 @@ void PseudoCFunction::GetExprTextInternal(const HighLevelILInstruction& instr, H const ConstantData& data = instr.GetConstantData<HLIL_CONST_DATA>(); if (auto [db, builtin] = data.ToDataBuffer(); db.GetLength()) { + bool nullTerminates = true; switch (builtin) { case BuiltinStrcpy: @@ -1284,9 +1285,12 @@ void PseudoCFunction::GetExprTextInternal(const HighLevelILInstruction& instr, H tokens.Append(BraceToken, "}"); break; } + case BuiltinWmemcpy: + nullTerminates = false; + // FALL_THROUGH default: { - if (auto unicode = GetFunction()->GetView()->StringifyUnicodeData(instr.function->GetArchitecture(), db); unicode.has_value()) + if (auto unicode = GetFunction()->GetView()->StringifyUnicodeData(instr.function->GetArchitecture(), db, nullTerminates); unicode.has_value()) { auto wideStringPrefix = (builtin == BuiltinWcscpy) ? "L" : ""; auto tokenContext = (builtin == BuiltinWcscpy) ? ConstStringDataTokenContext : ConstDataTokenContext; |
