aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);
}