diff options
author | unknown <bar@mysql.com/bar.myoffice.izhnet.ru> | 2008-03-04 16:13:08 +0400 |
---|---|---|
committer | unknown <bar@mysql.com/bar.myoffice.izhnet.ru> | 2008-03-04 16:13:08 +0400 |
commit | 8e4a3fcbc996e41b4d805a926479bfacf13a99dd (patch) | |
tree | 22b470d8b1c6d8408233c658f3bb0ed75048b48b /cmd-line-utils/libedit/el.h | |
parent | 197b41196dcf861db87dac40996bec5ecf191b95 (diff) | |
download | mariadb-git-8e4a3fcbc996e41b4d805a926479bfacf13a99dd.tar.gz |
Bug#23097 mysql can't insert korean on mysql prompt.
Problem: libedit is a very pure-ASCII oriented library,
and it is not aware of extended (0x80..0xFF) or even multi-byte
characters. It considered such characters as non-printable
and didn't allow to input them.
Fix: make libedit think that all bytes >= 0x80 are printable.
cmd-line-utils/libedit/el.h:
Defining macro, a locale's isprint() replacement.
We'll consider all 8bit values as printable characters.
cmd-line-utils/libedit/key.c:
Changing isprint() to el_isprint().
cmd-line-utils/libedit/map.c:
Changing isprint() to el_isprint().
cmd-line-utils/libedit/read.c:
Changing isprint() to el_isprint().
cmd-line-utils/libedit/refresh.c:
Changing isprint() to el_isprint().
Diffstat (limited to 'cmd-line-utils/libedit/el.h')
-rw-r--r-- | cmd-line-utils/libedit/el.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/cmd-line-utils/libedit/el.h b/cmd-line-utils/libedit/el.h index c4b6cff2186..d9379d7c8aa 100644 --- a/cmd-line-utils/libedit/el.h +++ b/cmd-line-utils/libedit/el.h @@ -136,6 +136,8 @@ struct editline { protected int el_editmode(EditLine *, int, const char **); +#define el_isprint(x) ((unsigned char) (x) < 0x80 ? isprint(x) : 1) + #ifdef DEBUG #define EL_ABORT(a) do { \ fprintf(el->el_errfile, "%s, %d: ", \ |