aboutsummaryrefslogtreecommitdiffstats
path: root/devel
diff options
context:
space:
mode:
authorbapt <bapt@FreeBSD.org>2015-01-09 15:51:30 +0800
committerbapt <bapt@FreeBSD.org>2015-01-09 15:51:30 +0800
commit25b3ec1b466abf071fddce541e55990b379547b0 (patch)
treea4a79cfc12bc2d3546aac07d6a46f56f96ab4c0d /devel
parente9bfbeaa65cf471d8752d75d079d4c41d07127e9 (diff)
downloadfreebsd-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.c22
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);
}