diff --git a/src/slash.c b/src/slash.c index d9f23b2..1498381 100644 --- a/src/slash.c +++ b/src/slash.c @@ -1021,7 +1021,8 @@ int slash_refresh(struct slash *slash) static void slash_insert(struct slash *slash, int c) { - if (slash->length >= slash->line_size) + /* We need 1 extra byte for the zero termination */ + if (slash->length + 1 >= slash->line_size) return; memmove(&slash->buffer[slash->cursor + 1], @@ -1320,10 +1321,13 @@ static int slash_builtin_echo(struct slash *slash) { int i; - for (i = 1; i < slash->argc; i++) - printf("%s ", slash->argv[i]); + for (i = 1; i < slash->argc; i++) { + slash_printf(slash, "%s", slash->argv[i]); + if (i + 1 < slash->argc) + slash_printf(slash, " "); + } - printf("\n"); + slash_printf(slash, "\n"); return SLASH_SUCCESS; }