@@ -128,13 +128,22 @@ const char* first_existing_file_in_list(const char ** filenames) {
128128 return NULL ;
129129}
130130
131+ void write_compressed (const compressed_string_t * compressed ) {
132+ char decompressed [compressed -> length ];
133+ decompress (compressed , decompressed );
134+ serial_write (decompressed );
135+ }
136+
131137bool maybe_run_list (const char * * filenames , pyexec_result_t * exec_result ) {
132138 const char * filename = first_existing_file_in_list (filenames );
133139 if (filename == NULL ) {
134140 return false;
135141 }
136142 mp_hal_stdout_tx_str (filename );
137- mp_hal_stdout_tx_str (translate (" output:\n" ));
143+ const compressed_string_t * compressed = translate (" output:\n" );
144+ char decompressed [compressed -> length ];
145+ decompress (compressed , decompressed );
146+ mp_hal_stdout_tx_str (decompressed );
138147 pyexec_file (filename , exec_result );
139148 return true;
140149}
@@ -145,11 +154,11 @@ bool run_code_py(safe_mode_t safe_mode) {
145154 if (serial_connected_at_start ) {
146155 serial_write ("\n" );
147156 if (autoreload_is_enabled ()) {
148- serial_write (translate ("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\n" ));
157+ write_compressed (translate ("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\n" ));
149158 } else if (safe_mode != NO_SAFE_MODE ) {
150- serial_write (translate ("Running in safe mode! Auto-reload is off.\n" ));
159+ write_compressed (translate ("Running in safe mode! Auto-reload is off.\n" ));
151160 } else if (!autoreload_is_enabled ()) {
152- serial_write (translate ("Auto-reload is off.\n" ));
161+ write_compressed (translate ("Auto-reload is off.\n" ));
153162 }
154163 }
155164 #endif
@@ -163,7 +172,7 @@ bool run_code_py(safe_mode_t safe_mode) {
163172 bool found_main = false;
164173
165174 if (safe_mode != NO_SAFE_MODE ) {
166- serial_write (translate ("Running in safe mode! Not running saved code.\n" ));
175+ write_compressed (translate ("Running in safe mode! Not running saved code.\n" ));
167176 } else {
168177 new_status_color (MAIN_RUNNING );
169178
@@ -179,7 +188,7 @@ bool run_code_py(safe_mode_t safe_mode) {
179188 if (!found_main ){
180189 found_main = maybe_run_list (double_extension_filenames , & result );
181190 if (found_main ) {
182- serial_write (translate ("WARNING: Your code filename has two extensions\n" ));
191+ write_compressed (translate ("WARNING: Your code filename has two extensions\n" ));
183192 }
184193 }
185194 stop_mp ();
@@ -218,37 +227,37 @@ bool run_code_py(safe_mode_t safe_mode) {
218227
219228 if (!serial_connected_at_start ) {
220229 if (autoreload_is_enabled ()) {
221- serial_write (translate ("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\n" ));
230+ write_compressed (translate ("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\n" ));
222231 } else {
223- serial_write (translate ("Auto-reload is off.\n" ));
232+ write_compressed (translate ("Auto-reload is off.\n" ));
224233 }
225234 }
226235 // Output a user safe mode string if its set.
227236 #ifdef BOARD_USER_SAFE_MODE
228237 if (safe_mode == USER_SAFE_MODE ) {
229238 serial_write ("\n" );
230- serial_write (translate ("You requested starting safe mode by " ));
239+ write_compressed (translate ("You requested starting safe mode by " ));
231240 serial_write (BOARD_USER_SAFE_MODE_ACTION );
232241 serial_write ("\n" );
233- serial_write (translate ("To exit, please reset the board without " ));
242+ write_compressed (translate ("To exit, please reset the board without " ));
234243 serial_write (BOARD_USER_SAFE_MODE_ACTION );
235244 serial_write ("\n" );
236245 } else
237246 #endif
238247 if (safe_mode != NO_SAFE_MODE ) {
239248 serial_write ("\n" );
240- serial_write (translate ("You are running in safe mode which means something really bad happened.\n" ));
249+ write_compressed (translate ("You are running in safe mode which means something really bad happened.\n" ));
241250 if (safe_mode == HARD_CRASH ) {
242- serial_write (translate ("Looks like our core CircuitPython code crashed hard. Whoops!\n" ));
243- serial_write (translate ("Please file an issue here with the contents of your CIRCUITPY drive:\n" ));
251+ write_compressed (translate ("Looks like our core CircuitPython code crashed hard. Whoops!\n" ));
252+ write_compressed (translate ("Please file an issue here with the contents of your CIRCUITPY drive:\n" ));
244253 serial_write ("https://github.com/adafruit/circuitpython/issues\n" );
245254 } else if (safe_mode == BROWNOUT ) {
246- serial_write (translate ("The microcontroller's power dipped. Please make sure your power supply provides\n" ));
247- serial_write (translate ("enough power for the whole circuit and press reset (after ejecting CIRCUITPY).\n" ));
255+ write_compressed (translate ("The microcontroller's power dipped. Please make sure your power supply provides\n" ));
256+ write_compressed (translate ("enough power for the whole circuit and press reset (after ejecting CIRCUITPY).\n" ));
248257 }
249258 }
250259 serial_write ("\n" );
251- serial_write (translate ("Press any key to enter the REPL. Use CTRL-D to reload." ));
260+ write_compressed (translate ("Press any key to enter the REPL. Use CTRL-D to reload." ));
252261 }
253262 if (serial_connected_before_animation && !serial_connected ()) {
254263 serial_connected_at_start = false;
@@ -403,7 +412,7 @@ int __attribute__((used)) main(void) {
403412 }
404413 if (exit_code == PYEXEC_FORCED_EXIT ) {
405414 if (!first_run ) {
406- serial_write (translate ("soft reboot\n" ));
415+ write_compressed (translate ("soft reboot\n" ));
407416 }
408417 first_run = false;
409418 skip_repl = run_code_py (safe_mode );
0 commit comments