From 5137e0e509ae4d6534be132d614d43ea53d8a4e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Tue, 25 Mar 2014 21:01:34 +0100 Subject: [PATCH] Escape % in $CMD variable Fixes formatting on some rare cases when a percent ends up in the $CMD variable, like these below: - When assigning a variable, $CMD ends up with the second parameter; in this case, $CMD will contain '+%s%N', messing with the syntax: $ a=`date +%s%N` - A function (or command in general) that contains a percent symbol: $ to\%() { echo $(( $1 * 100 / $3))\% } # $CMD=to%() $ to% 2 of 10 # $CMD=to% --- lib/termsupport.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 5f2fe63d4..9c0a430fb 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -26,8 +26,11 @@ function omz_termsupport_precmd { function omz_termsupport_preexec { emulate -L zsh setopt extended_glob - local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd + + # cmd name only, or if this is sudo or ssh, the next cmd + local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]:gs/%/%%} local LINE="${2:gs/%/%%}" + title '$CMD' '%100>...>$LINE%<<' }