diff options
author | ache <ache@FreeBSD.org> | 2004-02-10 20:17:58 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 2004-02-10 20:17:58 +0000 |
commit | 1fcbd5275da3c239fc256809b0432c9e26161474 (patch) | |
tree | a3f9ac4c58da790957a792c8132d96b2454e4610 /contrib/libreadline | |
parent | 1859bb7c05e945e4f509d1eca62c9837c74501f0 (diff) | |
download | FreeBSD-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.c | 8 |
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); |