if unhandleds:
fused = ''.join([chr(n) for n in unhandleds])
if fused.startswith(OSC_52_PREFIX):
- encoded = fused[len(OSC_52_PREFIX):]
- if not encoded:
+ if not (encoded := fused[len(OSC_52_PREFIX):]):
while True:
gotch = self._blessed.getch()
if ord(gotch) == 7:
def process_bonus(self, yielded: str) -> None:
if yielded.startswith(PREFIX_B64):
encoded = yielded[len(PREFIX_B64):]
- self.broadcast('PROMPT_ADD', b64decode(encoded).decode('utf-8'))
+ to_paste = ''
+ for i, c in enumerate(b64decode(encoded).decode('utf-8')):
+ if i > 512:
+ break
+ if c.isprintable():
+ to_paste += c
+ elif c.isspace():
+ to_paste += ' '
+ else:
+ to_paste += '#'
+ self.broadcast('PROMPT_ADD', to_paste)
elif yielded in KEYBINDINGS:
self.broadcast('KEYBINDING', KEYBINDINGS[yielded])
elif len(yielded) == 1: