diff options
author | bapt <bapt@FreeBSD.org> | 2015-01-09 15:51:30 +0800 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2015-01-09 15:51:30 +0800 |
commit | 25b3ec1b466abf071fddce541e55990b379547b0 (patch) | |
tree | a4a79cfc12bc2d3546aac07d6a46f56f96ab4c0d /devel | |
parent | e9bfbeaa65cf471d8752d75d079d4c41d07127e9 (diff) | |
download | freebsd-ports-gnome-25b3ec1b466abf071fddce541e55990b379547b0.tar.gz freebsd-ports-gnome-25b3ec1b466abf071fddce541e55990b379547b0.tar.zst freebsd-ports-gnome-25b3ec1b466abf071fddce541e55990b379547b0.zip |
Fix the number of element returned with el_getc in unicode env
Diffstat (limited to 'devel')
-rw-r--r-- | devel/libedit/files/patch-src_eln.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/devel/libedit/files/patch-src_eln.c b/devel/libedit/files/patch-src_eln.c index 96c826b1299f..526947637498 100644 --- a/devel/libedit/files/patch-src_eln.c +++ b/devel/libedit/files/patch-src_eln.c @@ -1,16 +1,24 @@ ---- src/eln.c.orig 2015-01-07 22:26:24 UTC -+++ src/eln.c -@@ -76,9 +76,11 @@ el_gets(EditLine *el, int *nread) +--- src/eln.c.orig 2014-06-18 21:06:34.000000000 +0200 ++++ src/eln.c 2015-01-09 08:48:42.000000000 +0100 +@@ -75,10 +75,18 @@ public const char * + el_gets(EditLine *el, int *nread) { const wchar_t *tmp; - -- el->el_flags |= IGNORE_EXTCHARS; ++ int nwread; ++ ++ *nread = 0; ++ + if (!(el->el_flags & CHARSET_IS_UTF8)) + el->el_flags |= IGNORE_EXTCHARS; - tmp = el_wgets(el, nread); -- el->el_flags &= ~IGNORE_EXTCHARS; ++ tmp = el_wgets(el, &nwread); + if (!(el->el_flags & CHARSET_IS_UTF8)) + el->el_flags &= ~IGNORE_EXTCHARS; ++ for (int i = 0; i < nwread; i++) ++ *nread += ct_enc_width(tmp[i]); + +- el->el_flags |= IGNORE_EXTCHARS; +- tmp = el_wgets(el, nread); +- el->el_flags &= ~IGNORE_EXTCHARS; return ct_encode_string(tmp, &el->el_lgcyconv); } |