summaryrefslogtreecommitdiffstats
path: root/utf8.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2019-05-23 17:02:25 +0100
committerThomas Adam <thomas@xteddy.org>2019-05-23 17:02:25 +0100
commit43431e7e8458091c762792db39af3fef65e14412 (patch)
tree9887dff5841a98b0f31e561bd663bbedce9f2c38 /utf8.c
parent389cf63cbc027c995900bbdd6e68f4f5a96e5c08 (diff)
parenteb8b51effcd2dee7b95c811c894bf29387a272c9 (diff)
Merge branch 'obsd-master'
Diffstat (limited to 'utf8.c')
-rw-r--r--utf8.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/utf8.c b/utf8.c
index 94879665..d342455a 100644
--- a/utf8.c
+++ b/utf8.c
@@ -18,6 +18,7 @@
#include <sys/types.h>
+#include <ctype.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
@@ -207,7 +208,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');