From 9444e4c0c6d1d9949ec59710dbf1a0dc561b6670 Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Fri, 31 Mar 2017 23:23:27 -0500 Subject: [PATCH] Gracefully handle `echotc Co` failure In Emacs, `M-x shell` creates a shell buffer with very rudimentary terminal capabilities. `$TERM` is set to `dumb`, and `echotc Co` fails after printing `echotc: no such capability: Co` to standard error. If our goal was to determine whether the terminal supports 256 colors, we really have no information to go on. I recommend that we trust the user and hope for the best. That means we should (1) discard any `echotc Co` error output, and (2) forego the warning message about having fewer than 256 colors if `echotc Co` failed. --- powerlevel9k.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme index 52b56f4e..bbd1ec44 100755 --- a/powerlevel9k.zsh-theme +++ b/powerlevel9k.zsh-theme @@ -1317,8 +1317,8 @@ prompt_powerlevel9k_setup() { # Display a warning if the terminal does not support 256 colors local term_colors - term_colors=$(echotc Co) - if (( $term_colors < 256 )); then + term_colors=$(echotc Co 2>/dev/null) + if (( ! $? && ${term_colors:-0} < 256 )); then print -P "%F{red}WARNING!%f Your terminal appears to support less than 256 colors!" print -P "If your terminal supports 256 colors, please export the appropriate environment variable" print -P "_before_ loading this theme in your \~\/.zshrc. In most terminal emulators, putting"