]> git.cworth.org Git - tar/blobdiff - src/list.c
Merge branch 'dfsg-orig' into dfsg-debian
[tar] / src / list.c
index 93de630d7d27e76558656f257e549dfcc7809c16..c6501722ff4c0d8cbff54ee1db8b62daaf61729c 100644 (file)
@@ -481,11 +481,11 @@ read_header (bool raw_extended_headers)
 static char *
 decode_xform (char *file_name, void *data)
 {
-  xform_type type = *(xform_type*)data;
+  int type = *(int*)data;
 
   switch (type)
     {
-    case xform_symlink:
+    case XFORM_SYMLINK:
       /* FIXME: It is not quite clear how and to which extent are the symbolic
         links subject to filename transformation.  In the absence of another
         solution, symbolic links are exempt from component stripping and
@@ -493,11 +493,11 @@ decode_xform (char *file_name, void *data)
         proper. */ 
       return file_name;
       
-    case xform_link:
+    case XFORM_LINK:
       file_name = safer_name_suffix (file_name, true, absolute_names_option);
       break;
       
-    case xform_regfile:
+    case XFORM_REGFILE:
       file_name = safer_name_suffix (file_name, false, absolute_names_option);
       break;
     }
@@ -514,9 +514,9 @@ decode_xform (char *file_name, void *data)
 }
 
 bool
-transform_member_name (char **pinput, xform_type type)
+transform_member_name (char **pinput, int type)
 {
-  return transform_name_fp (pinput, decode_xform, &type);
+  return transform_name_fp (pinput, type, decode_xform, &type);
 }
 
 #define ISOCTAL(c) ((c)>='0'&&(c)<='7')
@@ -637,7 +637,16 @@ decode_header (union block *header, struct tar_stat_info *stat_info,
        stat_info->is_dumpdir = true;
     }
 
-  transform_member_name (&stat_info->file_name, xform_regfile);
+  transform_member_name (&stat_info->file_name, XFORM_REGFILE);
+  switch (header->header.typeflag)
+    {
+    case SYMTYPE:
+      transform_member_name (&stat_info->link_name, XFORM_SYMLINK);
+      break;
+      
+    case LNKTYPE:
+      transform_member_name (&stat_info->link_name, XFORM_LINK);
+    }
 }
 
 /* Convert buffer at WHERE0 of size DIGS from external format to