From: Anders Kaseorg Date: Tue, 15 Jun 2010 08:11:05 +0000 (-0400) Subject: newline-fix.bash: Force the bash prompt to start after a newline X-Git-Url: https://snippets.scripts.mit.edu/gitweb.cgi/Scripts/git/.git/commitdiff_plain/bbe6be472aca29cfab26d0304b6eb36920968ac0 newline-fix.bash: Force the bash prompt to start after a newline Some commands don’t print a newline at the end of their output, or take long enough to return that you’ve already typed part of the next command. Either causes bash to start its prompt in the middle of a line, which confuses it. This script sets $PROMPT_COMMAND to echo a magic sequence of terminal commands that will display a red “\n” before the prompt if it would otherwise start in the middle of a line. Signed-off-by: Anders Kaseorg --- diff --git a/bash/newline-fix.bash b/bash/newline-fix.bash new file mode 100644 index 0000000..8295e87 --- /dev/null +++ b/bash/newline-fix.bash @@ -0,0 +1,53 @@ +# newline-fix.bash: Force the bash prompt to start after a newline +# http://snippets.scripts.mit.edu/gitweb.cgi/.git/blob/HEAD:/bash/newline-fix.bash +# +# Some commands don’t print a newline at the end of their output, or +# take long enough to return that you’ve already typed part of the +# next command. Either causes bash to start its prompt in the middle +# of a line, which confuses it. This script sets $PROMPT_COMMAND to +# echo a magic sequence of terminal commands that will display a red +# “\n” before the prompt if it would otherwise start in the +# middle of a line. +# +# Copyright © 2010 Anders Kaseorg +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# Usage: Source this file from your ~/.bashrc. + +show_no_lf () { + tput -S <' && \ + tput -S <&2;$PROMPT_COMMAND"