Patch-ID: bash41-002
authorChet Ramey <[email protected]>
Wed, 6 Jan 2010 13:30:23 +0000 (6 08:30 -0500)
committerBradley M. Kuhn <[email protected]>
Wed, 6 Jan 2010 13:30:23 +0000 (6 08:30 -0500)
Bug-Reported-by: [email protected]
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.

This patch, in file bash41-002, was downloaded from ftp.gnu.org on 2011-05-29,
and bash41-002.sig was furthermore verified, yielding the following output:
gpg: Signature made Mon 18 Jan 2010 10:41:44 AM EST using DSA key ID 64EA74AB
gpg: Good signature from "Chet Ramey <[email protected]>"

lib/readline/complete.c
patchlevel.h

index ad9ca05..bda2204 100644 (file)
@@ -2138,7 +2138,7 @@ rl_filename_completion_function (text, state)
         All other entries except "." and ".." match. */
       if (filename_len == 0)
        {
-         if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name))
+         if (_rl_match_hidden_files == 0 && HIDDEN_FILE (convfn))
            continue;
 
          if (convfn[0] != '.' ||
@@ -2219,7 +2219,7 @@ rl_filename_completion_function (text, state)
                temp[dirlen++] = '/';
            }
 
-         strcpy (temp + dirlen, entry->d_name);
+         strcpy (temp + dirlen, convfn);
        }
       else
        temp = savestring (convfn);
index c8f400f..d667814 100644 (file)
@@ -25,6 +25,6 @@
    regexp `^#define[   ]*PATCHLEVEL', since that's what support/mkversion.sh
    looks for to find the patch level (for the sccs version string). */
 
-#define PATCHLEVEL 1
+#define PATCHLEVEL 2
 
 #endif /* _PATCHLEVEL_H_ */