From 2813dcc6cc756f20548b4cfadfa2facd6c126f22 Mon Sep 17 00:00:00 2001 From: d10n Date: Sun, 17 Nov 2013 07:49:48 -0500 Subject: [PATCH] On short prompts, commands wider than the terminal do not reposition to start on their own lines. --- screen.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/screen.cpp b/screen.cpp index d02fc438a..fdf462e2b 100644 --- a/screen.cpp +++ b/screen.cpp @@ -1215,7 +1215,14 @@ static screen_layout_t compute_layout(screen_t *s, result.left_prompt_space = left_prompt_width; // See remark about for why we can't use the right prompt here //result.right_prompt = right_prompt; - result.prompts_get_own_line = true; + + // If the command wraps, and the prompt is not short, place the command on its own line. + // A short prompt is 33% or less of the terminal's width. + const size_t prompt_percent_width = (100 * left_prompt_width) / screen_width; + if (left_prompt_width + first_command_line_width + 1 > screen_width && prompt_percent_width > 33) { + result.prompts_get_own_line = true; + } + done = true; }