diff options
author | d10n <david@bitinvert.com> | 2013-11-17 07:49:48 -0500 |
---|---|---|
committer | ridiculousfish <corydoras@ridiculousfish.com> | 2013-11-26 00:51:02 -0800 |
commit | 2813dcc6cc756f20548b4cfadfa2facd6c126f22 (patch) | |
tree | 9870d8fa7f6a1da77c98f1ff7fa71539577363f3 /screen.cpp | |
parent | 0a54558ee24f2375266bf6c3c33a12602b344e5b (diff) |
On short prompts, commands wider than the terminal do not reposition to start on their own lines.
Diffstat (limited to 'screen.cpp')
-rw-r--r-- | screen.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -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; } |