1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
#! /bin/sh -e
if [ $# -eq 3 -a "$2" = '-d' ]; then
pdir="-d $3"
elif [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;;
-unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
esac
exit 0
# DP: bash-2.05b upstream patch 005
BASH PATCH REPORT
=================
Bash-Release: 2.05b
Patch-ID: bash205b-007
Bug-Reported-by: dman@dman.ddts.net
Bug-Reference-ID: <15893.26358.129589.503364@gargle.gargle.HOWL>
Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=175127
Bug-Description:
Using the vi editing mode's case-changing commands in a locale with
multibyte characters will cause garbage characters to be inserted into
the editing buffer.
Patch:
*** ../bash-2.05b/lib/readline/vi_mode.c Thu May 23 13:27:58 2002
--- lib/readline/vi_mode.c Tue Feb 4 15:11:07 2003
***************
*** 681,685 ****
{
wchar_t wc;
! char mb[MB_LEN_MAX];
mbstate_t ps;
--- 681,686 ----
{
wchar_t wc;
! char mb[MB_LEN_MAX+1];
! int mblen;
mbstate_t ps;
***************
*** 704,708 ****
if (wc)
{
! wctomb (mb, wc);
rl_begin_undo_group ();
rl_delete (1, 0);
--- 705,711 ----
if (wc)
{
! mblen = wctomb (mb, wc);
! if (mblen >= 0)
! mb[mblen] = '\0';
rl_begin_undo_group ();
rl_delete (1, 0);
|