diff options
| author | blasty <blasty@local> | 2026-07-10 16:43:32 +0200 |
|---|---|---|
| committer | blasty <blasty@local> | 2026-07-10 16:43:32 +0200 |
| commit | 7ae37ba3b432bbb2482df9c99864350e685b0241 (patch) | |
| tree | fe96899d03e683792ba696dc1908cf8875ffa86b /idatui | |
| parent | drive: add save + retype; point docs/skills at the ergonomic frontend (diff) | |
| download | ida-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.py | 4 |
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: |
