134c1ada285f5c65fa9d0f2f0cc784201428462a

Author
Marc Cornellà <hello@mcornella.com>
Committer
Marc Cornellà <hello@mcornella.com>
Date

Message

fix(jonathan): fix theme for non-UTF8 locales

Diff

 1diff --git a/themes/jonathan.zsh-theme b/themes/jonathan.zsh-theme
 2index 2c5f300600b287637ece4dfce4fd694a6f16825f..ca58b94a324cb1b017e1a22bd95f1e4429e6ad5a 100644
 3--- a/themes/jonathan.zsh-theme
 4+++ b/themes/jonathan.zsh-theme
 5@@ -1,6 +1,4 @@
 6 function theme_precmd {
 7-  local -i TERMWIDTH=$COLUMNS
 8-
 9   PR_FILLBAR=""
10   PR_PWDLEN=""
11 
12@@ -9,10 +7,12 @@ function theme_precmd {
13   local pwdsize=${#${(%):-%~}}
14 
15   # Truncate the path if it's too long.
16-  if (( promptsize + rubypromptsize + pwdsize > TERMWIDTH )); then
17-    (( PR_PWDLEN = TERMWIDTH - promptsize ))
18+  if (( promptsize + rubypromptsize + pwdsize > COLUMNS )); then
19+    (( PR_PWDLEN = COLUMNS - promptsize ))
20+  elif [[ "${langinfo[CODESET]}" = UTF-8 ]]; then
21+    PR_FILLBAR="\${(l:$(( COLUMNS - (promptsize + rubypromptsize + pwdsize) ))::${PR_HBAR}:)}"
22   else
23-    PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $rubypromptsize + $pwdsize)))..${PR_HBAR}.)}"
24+    PR_FILLBAR="${PR_SHIFT_IN}\${(l:$(( COLUMNS - (promptsize + rubypromptsize + pwdsize) ))::${altchar[q]:--}:)}${PR_SHIFT_OUT}"
25   fi
26 }
27 
28@@ -48,18 +48,16 @@ ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
29 ZSH_THEME_GIT_PROMPT_DIRTY=""
30 ZSH_THEME_GIT_PROMPT_CLEAN=""
31 
32-ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚"
33-ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹"
34-ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖"
35-ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜"
36-ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═"
37-ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭"
38+ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} %{%G✚%}"
39+ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} %{%G✹%}"
40+ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} %{%G✖%}"
41+ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} %{%G➜%}"
42+ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} %{%G═%}"
43+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} %{%G✭%}"
44 
45 # Use extended characters to look nicer if supported.
46-if [[ "${langinfo[CODESET]}" = "UTF-8" ]]; then
47+if [[ "${langinfo[CODESET]}" = UTF-8 ]]; then
48   PR_SET_CHARSET=""
49-  PR_SHIFT_IN=""
50-  PR_SHIFT_OUT=""
51   PR_HBAR="─"
52   PR_ULCORNER="┌"
53   PR_LLCORNER="└"
54@@ -72,12 +70,12 @@ else
55   PR_SET_CHARSET="%{$terminfo[enacs]%}"
56   PR_SHIFT_IN="%{$terminfo[smacs]%}"
57   PR_SHIFT_OUT="%{$terminfo[rmacs]%}"
58-  PR_HBAR='$PR_SHIFT_IN${altchar[q]:--}$PR_SHIFT_OUT'
59-  PR_ULCORNER='$PR_SHIFT_IN${altchar[l]:--}$PR_SHIFT_OUT'
60-  PR_LLCORNER='$PR_SHIFT_IN${altchar[m]:--}$PR_SHIFT_OUT'
61-  PR_LRCORNER='$PR_SHIFT_IN${altchar[j]:--}$PR_SHIFT_OUT'
62-  PR_URCORNER='$PR_SHIFT_IN${altchar[k]:--}$PR_SHIFT_OUT'
63-  fi
64+  PR_HBAR="${PR_SHIFT_IN}${altchar[q]:--}${PR_SHIFT_OUT}"
65+  PR_ULCORNER="${PR_SHIFT_IN}${altchar[l]:--}${PR_SHIFT_OUT}"
66+  PR_LLCORNER="${PR_SHIFT_IN}${altchar[m]:--}${PR_SHIFT_OUT}"
67+  PR_LRCORNER="${PR_SHIFT_IN}${altchar[j]:--}${PR_SHIFT_OUT}"
68+  PR_URCORNER="${PR_SHIFT_IN}${altchar[k]:--}${PR_SHIFT_OUT}"
69+fi
70 
71 # Decide if we need to set titlebar text.
72 case $TERM in