File: bash41-002.dpatch

package info (click to toggle)
bash 4.1-3
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 3,108 kB
  • ctags: 161
  • sloc: sh: 1,555; ansic: 854; makefile: 479
file content (83 lines) | stat: -rw-r--r-- 2,248 bytes parent folder | download | duplicates (2)
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_ */