From aedf230c30478553dcb9b24cfcd226b680a7e2da Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Wed, 5 Aug 2026 17:24:56 +0000 Subject: [PATCH] keypress_confirm(): cleanups, new `no_nl_on_false` param --- mmgen/ui.py | 14 ++++++++------ mmgen/wallet/unenc.py | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/mmgen/ui.py b/mmgen/ui.py index 3638a4d4..97e2bdbb 100755 --- a/mmgen/ui.py +++ b/mmgen/ui.py @@ -87,20 +87,22 @@ def keypress_confirm( default_yes = False, verbose = False, no_nl = False, + no_nl_on_false = False, complete_prompt = False, do_exit = False, exit_msg = 'Exiting at user request'): def do_return(retval): + msg_r(f'\r{" "*len(prompt)}\r' if no_nl or (retval is False and no_nl_on_false) else '\n') if do_exit and not retval: die(1, exit_msg) return retval + assert not (no_nl and no_nl_on_false), 'keypress_confirm(): ‘no_nl’ and ‘no_nl_on_false’ are mutually exclusive' + if not complete_prompt: prompt = '{} {}: '.format(prompt, '(Y/n)' if default_yes else '(y/N)') - nl = f'\r{" "*len(prompt)}\r' if no_nl else '\n' - if cfg.accept_defaults: msg(prompt) return do_return(default_yes) @@ -109,11 +111,11 @@ def keypress_confirm( while True: match get_char(prompt, immed_chars='yYnN').strip('\n\r'): case '': - msg_r(nl) return do_return(default_yes) - case 'y' | 'Y' | 'n' | 'N' as reply: - msg_r(nl) - return do_return(reply in 'yY') + case 'y' | 'Y': + return do_return(True) + case 'n' | 'N': + return do_return(False) case _: msg_r('\nInvalid reply\n' if verbose else '\r') diff --git a/mmgen/wallet/unenc.py b/mmgen/wallet/unenc.py index 485c6a51..affb2b85 100755 --- a/mmgen/wallet/unenc.py +++ b/mmgen/wallet/unenc.py @@ -54,5 +54,5 @@ class wallet(wallet): self.cfg, prompt, default_yes = True, - no_nl = not self.cfg.test_suite): + no_nl_on_false = True): return usr_len