1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

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().
This commit is contained in:
unknown
2008-03-04 16:13:08 +04:00
parent 197b41196d
commit 8e4a3fcbc9
5 changed files with 9 additions and 7 deletions

View File

@ -88,7 +88,7 @@ private void
re_addc(EditLine *el, int c)
{
if (isprint(c)) {
if (el_isprint(c)) {
re_putc(el, c, 1);
return;
}
@ -964,7 +964,7 @@ re_refresh_cursor(EditLine *el)
h = 1;
v++;
}
} else if (!isprint((unsigned char) c)) {
} else if (!el_isprint((unsigned char) c)) {
h += 3;
if (h > th) { /* if overflow, compensate */
h = h - th;
@ -1057,7 +1057,7 @@ re_fastaddc(EditLine *el)
char mc = (c == '\177') ? '?' : (c | 0100);
re_fastputc(el, '^');
re_fastputc(el, mc);
} else if (isprint((unsigned char) c)) { /* normal char */
} else if (el_isprint((unsigned char) c)) { /* normal char */
re_fastputc(el, c);
} else {
re_fastputc(el, '\\');