summaryrefslogtreecommitdiffstats
path: root/contrib/libreadline
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>2004-02-10 20:17:58 +0000
committerache <ache@FreeBSD.org>2004-02-10 20:17:58 +0000
commit1fcbd5275da3c239fc256809b0432c9e26161474 (patch)
treea3f9ac4c58da790957a792c8132d96b2454e4610 /contrib/libreadline
parent1859bb7c05e945e4f509d1eca62c9837c74501f0 (diff)
downloadFreeBSD-src-1fcbd5275da3c239fc256809b0432c9e26161474.zip
FreeBSD-src-1fcbd5275da3c239fc256809b0432c9e26161474.tar.gz
Official patches 001-005
PR: 62555
Diffstat (limited to 'contrib/libreadline')
-rw-r--r--contrib/libreadline/vi_mode.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/contrib/libreadline/vi_mode.c b/contrib/libreadline/vi_mode.c
index 5d146b3..5eb176e 100644
--- a/contrib/libreadline/vi_mode.c
+++ b/contrib/libreadline/vi_mode.c
@@ -1,3 +1,4 @@
+/* $FreeBSD$ */
/* vi_mode.c -- A vi emulation mode for Bash.
Derived from code written by Jeff Sparkes (jsparkes@bnr.ca). */
@@ -680,7 +681,8 @@ _rl_vi_change_mbchar_case (count)
int count;
{
wchar_t wc;
- char mb[MB_LEN_MAX];
+ char mb[MB_LEN_MAX+1];
+ int mblen;
mbstate_t ps;
memset (&ps, 0, sizeof (mbstate_t));
@@ -703,7 +705,9 @@ _rl_vi_change_mbchar_case (count)
/* Vi is kind of strange here. */
if (wc)
{
- wctomb (mb, wc);
+ mblen = wctomb (mb, wc);
+ if (mblen >= 0)
+ mb[mblen] = '\0';
rl_begin_undo_group ();
rl_delete (1, 0);
rl_insert_text (mb);
OpenPOWER on IntegriCloud