summary refs log tree commit diff
path: root/Src/Modules
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2000-11-13 10:22:40 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2000-11-13 10:22:40 +0000
commitbbb0d75e253c9ef897bdf2d23ca76557ac540305 (patch)
tree719f4e522ce74e63a34180fec589f4f9fe49eea6 /Src/Modules
parent8bcdb3b0e14e6a43fb371f23886d65dfa47b9c31 (diff)
downloadzsh-bbb0d75e253c9ef897bdf2d23ca76557ac540305.tar.gz
zsh-bbb0d75e253c9ef897bdf2d23ca76557ac540305.tar.xz
zsh-bbb0d75e253c9ef897bdf2d23ca76557ac540305.zip
use unmetafy() to allow writing special characters into a pty (13156)
Diffstat (limited to 'Src/Modules')
-rw-r--r--Src/Modules/zpty.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/Src/Modules/zpty.c b/Src/Modules/zpty.c
index e76411a8b..dcca286c0 100644
--- a/Src/Modules/zpty.c
+++ b/Src/Modules/zpty.c
@@ -562,13 +562,15 @@ static int
 ptywrite(Ptycmd cmd, char **args, int nonl)
 {
     if (*args) {
-	char sp = ' ';
+	char sp = ' ', *tmp;
+	int len;
 
-	while (*args)
-	    if (ptywritestr(cmd, *args, strlen(*args)) ||
+	while (*args) {
+	    unmetafy((tmp = dupstring(*args)), &len);
+	    if (ptywritestr(cmd, tmp, len) ||
 		(*++args && ptywritestr(cmd, &sp, 1)))
 		return 1;
-
+	}
 	if (!nonl) {
 	    sp = '\n';
 	    if (ptywritestr(cmd, &sp, 1))