]> Dogcows Code - chaz/tar/blobdiff - src/extract.c
Added missing includes.
[chaz/tar] / src / extract.c
index d7aba0d95bad075c08e8f61b3d95af7af997b92e..9d00c80bf3877f21574d7ef8c9ec06f9e0290a49 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "system.h"
 #include <quotearg.h>
+#include <errno.h>
 
 #if HAVE_UTIME_H
 # include <utime.h>
@@ -407,10 +408,7 @@ make_directories (char *file_name)
       else if ((errno == ENOSYS /* Automounted dirs on Solaris return
                                   this. Reported by Warren Hyde
                                   <Warren.Hyde@motorola.com> */
-#if MSDOS
-              || errno == EACCES  /* Turbo C mkdir gives a funny errno.  */
-#endif
-              )
+              || ERRNO_IS_EACCES)  /* Turbo C mkdir gives a funny errno.  */
               && access (file_name, W_OK) == 0)
        continue;
 
@@ -719,12 +717,13 @@ extract_archive (void)
   file_name = safer_name_suffix (current_stat_info.file_name, 0);
   if (strip_path_elements)
     {
-      file_name = cut_path_elements (file_name, strip_path_elements);
-      if (!file_name)
+      size_t prefix_len = stripped_prefix_len (file_name, strip_path_elements);
+      if (prefix_len == (size_t) -1)
        {
          skip_member ();
          return;
        }
+      file_name += prefix_len;
     }
   
   apply_nonancestor_delayed_set_stat (file_name, 0);
This page took 0.021474 seconds and 4 git commands to generate.