about summary refs log tree commit diff
path: root/Src/Zle/zle_thingy.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2005-02-24 15:32:36 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2005-02-24 15:32:36 +0000
commit691dd7e5294d232a7ab8327e2038f9779732fa3c (patch)
tree9d73edabb8e0c4c26a7cf60ceceb3cc23e74d8dd /Src/Zle/zle_thingy.c
parentc4a4c1340abeaedda251b90e99e4c9ae77880848 (diff)
downloadzsh-691dd7e5294d232a7ab8327e2038f9779732fa3c.tar.gz
zsh-691dd7e5294d232a7ab8327e2038f9779732fa3c.tar.xz
zsh-691dd7e5294d232a7ab8327e2038f9779732fa3c.zip
20861: Fix statusline in Unicode, apart from isearch
Diffstat (limited to 'Src/Zle/zle_thingy.c')
-rw-r--r--Src/Zle/zle_thingy.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/Src/Zle/zle_thingy.c b/Src/Zle/zle_thingy.c
index 494e1ade5..5885fb10f 100644
--- a/Src/Zle/zle_thingy.c
+++ b/Src/Zle/zle_thingy.c
@@ -407,7 +407,7 @@ bin_zle_list(UNUSED(char *name), char **args, Options ops, UNUSED(char func))
 static int
 bin_zle_refresh(UNUSED(char *name), char **args, Options ops, UNUSED(char func))
 {
-    char *s = statusline;
+    ZLE_STRING_T s = statusline;
     int sl = statusll, ocl = clearlist;
 
     if (!zleactive)
@@ -416,8 +416,8 @@ bin_zle_refresh(UNUSED(char *name), char **args, Options ops, UNUSED(char func))
     statusll = 0;
     if (*args) {
 	if (**args) {
-	    statusline = *args;
-	    statusll = strlen(statusline);
+	    statusline = stringaszleline((unsigned char *)*args, &statusll,
+					 NULL);
 	}
 	if (*++args) {
 	    LinkList l = newlinklist();
@@ -442,6 +442,9 @@ bin_zle_refresh(UNUSED(char *name), char **args, Options ops, UNUSED(char func))
     }
     zrefresh();
 
+    if (statusline)
+	free(statusline);
+
     clearlist = ocl;
     statusline = s;
     statusll = sl;