diff --git a/include/zephyr/shell/shell.h b/include/zephyr/shell/shell.h index 9f7d18f7ce7..5115e35339b 100644 --- a/include/zephyr/shell/shell.h +++ b/include/zephyr/shell/shell.h @@ -952,7 +952,7 @@ extern void z_shell_print_stream(const void *user_ctx, const char *data, static struct shell_ctx UTIL_CAT(_name, _ctx); \ Z_SHELL_HISTORY_DEFINE(_name##_history, CONFIG_SHELL_HISTORY_BUFFER); \ Z_SHELL_FPRINTF_DEFINE(_name##_fprintf, &_name, _out_buf, CONFIG_SHELL_PRINTF_BUFF_SIZE, \ - true, z_shell_print_stream); \ + IS_ENABLED(CONFIG_SHELL_PRINTF_AUTOFLUSH), z_shell_print_stream); \ LOG_INSTANCE_REGISTER(shell, _name, CONFIG_SHELL_LOG_LEVEL); \ Z_SHELL_STATS_DEFINE(_name); \ static K_KERNEL_STACK_DEFINE(_name##_stack, CONFIG_SHELL_STACK_SIZE); \ diff --git a/subsys/shell/Kconfig b/subsys/shell/Kconfig index 067386ec52f..41b20cad5a5 100644 --- a/subsys/shell/Kconfig +++ b/subsys/shell/Kconfig @@ -94,6 +94,13 @@ config SHELL_PRINTF_BUFF_SIZE It is working like stdio buffering in Linux systems to limit number of peripheral access calls. +config SHELL_PRINTF_AUTOFLUSH + bool "Indicate if the buffer should be automatically flushed" + default y + help + Specify whether the shell's printing functions should automatically + flush the printf buffer. + config SHELL_DEFAULT_TERMINAL_WIDTH int "Default terminal width" range 1 $(UINT16_MAX)