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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
#! /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 -p1 < $0;;
-unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
esac
exit 0
# DP: <your description>
BASH PATCH REPORT
=================
Bash-Release: 4.1
Patch-ID: bash41-002
Bug-Reported-by: guillaume.outters@free.fr
Bug-Reference-ID: <20100105230441.70D171AA7F52@asterix.local>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-01/msg00017.html
Bug-Description:
Bash-4.1/Readline-6.1 introduced a hook function that allows applications
to rewrite or modify filenames read from the file system before comparing
them with a word to be completed. The converted filename, if it matches,
needs to be inserted into the line buffer, replacing the original contents.
This fixes a completion bug on Mac OS X involving filenames containing
UTF-8 characters.
Patch (apply with `patch -p0'):
*** ../bash-4.1-patched/lib/readline/complete.c 2009-11-29 18:39:30.000000000 -0500
--- ./lib/readline/complete.c 2010-01-06 08:30:23.000000000 -0500
***************
*** 2139,2143 ****
if (filename_len == 0)
{
! if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name))
continue;
--- 2139,2143 ----
if (filename_len == 0)
{
! if (_rl_match_hidden_files == 0 && HIDDEN_FILE (convfn))
continue;
***************
*** 2220,2224 ****
}
! strcpy (temp + dirlen, entry->d_name);
}
else
--- 2220,2224 ----
}
! strcpy (temp + dirlen, convfn);
}
else
*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
--- ./patchlevel.h 2010-01-14 09:38:08.000000000 -0500
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 1
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 2
#endif /* _PATCHLEVEL_H_ */
|