aboutsummaryrefslogtreecommitdiffstats
path: root/idatui
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-10 16:43:32 +0200
committerblasty <blasty@local>2026-07-10 16:43:32 +0200
commit7ae37ba3b432bbb2482df9c99864350e685b0241 (patch)
treefe96899d03e683792ba696dc1908cf8875ffa86b /idatui
parentdrive: add save + retype; point docs/skills at the ergonomic frontend (diff)
downloadida-tui-7ae37ba3b432bbb2482df9c99864350e685b0241.tar.gz
ida-tui-7ae37ba3b432bbb2482df9c99864350e685b0241.tar.xz
ida-tui-7ae37ba3b432bbb2482df9c99864350e685b0241.zip
app: multi-line comments via literal \\n (long notes were clipping)
The comment prompt is single-line, so a long note rendered as one giant '//' line that ran off the right edge and got clipped. Interpret a literal '\\n' (backslash-n) in the comment text as a real newline in _do_comment (the single choke point for the ';' prompt and the RPC 'comment' verb) — Hex-Rays renders each as its own '//' line. Verified live and locked in the comment_func scenario (multi-line render); suite 104 green.
Diffstat (limited to 'idatui')
-rw-r--r--idatui/app.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/idatui/app.py b/idatui/app.py
index 8fc259e..d7bc390 100644
--- a/idatui/app.py
+++ b/idatui/app.py
@@ -2413,6 +2413,10 @@ class IdaTui(App):
@work(thread=True, exclusive=True, group="comment")
def _do_comment(self, ea: int, text: str) -> None:
assert self.program is not None
+ # The prompt is single-line, so a literal '\n' (backslash-n) means a real
+ # newline — Hex-Rays renders each as its own '//' line. Lets long notes
+ # wrap instead of running off the right edge and clipping.
+ text = text.replace("\\n", "\n")
try:
res = self.program.set_comment(ea, text)
except IDAToolError as e: