diff options
author | nicm <nicm> | 2019-05-23 14:03:44 +0000 |
---|---|---|
committer | nicm <nicm> | 2019-05-23 14:03:44 +0000 |
commit | 27bfb56ad5e19afa686ed6a99bf8b205fac98aef (patch) | |
tree | 9d7eafe33dfe96c3194bbce93d43013e3565af39 /utf8.c | |
parent | 3e3eb1dd0faa707fa6bdfd12d455ad711d775241 (diff) | |
download | rtmux-27bfb56ad5e19afa686ed6a99bf8b205fac98aef.tar.gz rtmux-27bfb56ad5e19afa686ed6a99bf8b205fac98aef.tar.bz2 rtmux-27bfb56ad5e19afa686ed6a99bf8b205fac98aef.zip |
Break the argument escaping code into a separate function and use it to
escape key bindings in list-keys. Also escape ~ and ; and $ properly.
Diffstat (limited to 'utf8.c')
-rw-r--r-- | utf8.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -18,6 +18,7 @@ #include <sys/types.h> +#include <ctype.h> #include <errno.h> #include <stdlib.h> #include <string.h> @@ -182,7 +183,11 @@ utf8_strvis(char *dst, const char *src, size_t len, int flag) /* Not a complete, valid UTF-8 character. */ src -= ud.have; } - if (src < end - 1) + if (src[0] == '$' && src < end - 1) { + if (isalpha((u_char)src[1]) || src[1] == '_') + *dst++ = '\\'; + *dst++ = '$'; + } else if (src < end - 1) dst = vis(dst, src[0], flag, src[1]); else if (src < end) dst = vis(dst, src[0], flag, '\0'); |