From 272e8d7993c53638567a96d9b958e043178d9ca0 Mon Sep 17 00:00:00 2001 From: Giacomo Cusinato <7659518+giacomocusinato@users.noreply.github.com> Date: Wed, 17 Dec 2025 15:44:00 +0100 Subject: [PATCH] fix: replace null characters in copied monitor output In OSes implementation of `clipboard.writeText`, null (`\u0000`) characters are parsed as string termination symbol, effectively truncating the copied output --- .../serial/monitor/serial-monitor-send-output.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/arduino-ide-extension/src/browser/serial/monitor/serial-monitor-send-output.tsx b/arduino-ide-extension/src/browser/serial/monitor/serial-monitor-send-output.tsx index f93b24e53..d031fb6d6 100644 --- a/arduino-ide-extension/src/browser/serial/monitor/serial-monitor-send-output.tsx +++ b/arduino-ide-extension/src/browser/serial/monitor/serial-monitor-send-output.tsx @@ -75,9 +75,12 @@ export class SerialMonitorOutput extends React.Component< this.props.clearConsoleEvent(() => this.setState({ lines: [], charCount: 0 }) ), - this.props.copyOutputEvent(() => - this.props.clipboardService.writeText(joinLines(this.state.lines)) - ), + this.props.copyOutputEvent(() => { + const text = joinLines(this.state.lines); + // Replace null characters with a visible symbol + const safe = text.replace(/\u0000/g, '\u25A1'); + this.props.clipboardService.writeText(safe); + }), this.props.monitorModel.onChange(({ property }) => { if (property === 'timestamp') { const { timestamp } = this.props.monitorModel;