diff -urNp tar-1.20-orig/src/names.c tar-1.20/src/names.c --- tar-1.20-orig/src/names.c 2008-09-24 10:53:41.000000000 +0200 +++ tar-1.20/src/names.c 2008-09-24 10:57:28.000000000 +0200 @@ -289,8 +289,7 @@ static int matching_flags; /* exclude_fn static storage and can't be relied upon across two calls. If CHANGE_DIRS is true, treat any entries of type NELT_CHDIR as - the request to change to the given directory. If filename_terminator - is NUL, CHANGE_DIRS is effectively always false. + the request to change to the given directory. Entries of type NELT_FMASK cause updates of the matching_flags value. */ @@ -301,9 +300,6 @@ name_next_elt (int change_dirs) const char *source; char *cursor; - if (filename_terminator == '\0') - change_dirs = 0; - while (name_index != names) { struct name_elt *ep;