summary refs log tree commit diff
path: root/Functions/Prompts/prompt_special_chars
diff options
context:
space:
mode:
Diffstat (limited to 'Functions/Prompts/prompt_special_chars')
-rw-r--r--Functions/Prompts/prompt_special_chars19
1 files changed, 13 insertions, 6 deletions
diff --git a/Functions/Prompts/prompt_special_chars b/Functions/Prompts/prompt_special_chars
index 8be7dc1cf..3dbf481ff 100644
--- a/Functions/Prompts/prompt_special_chars
+++ b/Functions/Prompts/prompt_special_chars
@@ -6,13 +6,20 @@
 # We still provide them in that form if the current character
 # set isn't UTF-8.  We could in principle use iconv if available.
 
+typeset -gA schars
+
 if [[ ${LC_ALL:-${LC_CTYPE:-$LANG}} = *UTF-8* ]]; then
-  char_333=$'\xe2\x96\x88'
-  char_262=$'\xe2\x96\x93'
-  char_261=$'\xe2\x96\x92'
-  char_260=$'\xe2\x96\x91'
+  schars[300]=$'\xe2\x94\x94'
+  schars[304]=$'\xe2\x94\x8c'
+  schars[332]=$'\xe2\x94\x8c'
+  schars[333]=$'\xe2\x96\x88'
+  schars[371]=$'\xc2\xa8'
+  schars[372]=$'\xcb\x99'
+  schars[262]=$'\xe2\x96\x93'
+  schars[261]=$'\xe2\x96\x92'
+  schars[260]=$'\xe2\x96\x91'
 else
-  for code in 333 262 261 260; do
-    char_$code=$(echo -n "\\0$code")
+  for code in 300 304 332 333 371 372 262 261 260; do
+    eval "char[$code]=\$'\\$code'"
   done
 fi