void decode_header (union block *header, struct tar_stat_info *stat_info,
enum archive_format *format_pointer, int do_user_group);
+void transform_stat_info (int typeflag, struct tar_stat_info *stat_info);
char const *tartime (struct timespec t, bool full_time);
#define OFF_FROM_HEADER(where) off_from_header (where, sizeof (where))
return transform_name_fp (pinput, type, decode_xform, &type);
}
-static void
+void
transform_stat_info (int typeflag, struct tar_stat_info *stat_info)
{
if (typeflag == GNUTYPE_VOLHDR)
decode_header (current_header, ¤t_stat_info,
¤t_format, 0);
+ transform_stat_info (current_header->header.typeflag,
+ ¤t_stat_info);
archive_format = current_format;
if (subcommand_option == UPDATE_SUBCOMMAND
--- /dev/null
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright (C) 2010 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+AT_SETUP([append with name transformation])
+AT_KEYWORDS([append append03])
+
+# Description: Make sure filenames are transformed during append.
+
+AT_TAR_CHECK([
+genfile --file file.1
+genfile --file file.2
+
+tar -c -f archive --transform 's/file/plik/' file.*
+echo Appending
+tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
+echo Testing
+tar tf archive
+],
+[0],
+[Appending
+plik.1
+Testing
+plik.1
+plik.2
+plik.1
+])
+
+AT_CLEANUP