@@ -148,16 +148,23 @@ untar2 <- function(tarfile, files = NULL, list = FALSE, exdir = ".",
148148        as.integer(getOctD(x , offset , len ))
149149    checkPath  <-  function (path ) {
150150        if  (.Platform $ OS.type  ==  " windows" 
151-             if  (grepl(" ^[a-zA-Z]:" path )) {
152-                 drv  <-  sub(" ^([a-zA-Z]:).*" " \\ 1" path )
153-                 warning(sprintf(" removing drive '%s'" drv ))
154-                 path  <-  sub(" ^([a-zA-Z]:)" " " path )
155-             }
156151            path  <-  gsub(" \\\\ " " /" path )
157-         }
158-         if  (grepl(" ^/" path )) {
159-             warning(" removing leading '/'" 
160-             path  <-  sub(" ^/+" " " path )
152+             while (grepl(" ^/" path ) ||  grepl(" ^[a-zA-Z]:" path )) {
153+                 if  (grepl(" ^/" path )) {
154+                     warning(" removing leading '/'" 
155+                     path  <-  sub(" ^/+" " " path )
156+                 }
157+                 if  (grepl(" ^[a-zA-Z]:" path )) {
158+                     drv  <-  sub(" ^([a-zA-Z]:).*" " \\ 1" path )
159+                     warning(sprintf(" removing drive '%s'" drv ))
160+                     path  <-  sub(" ^[a-zA-Z]:" " " path )
161+                 }
162+             }
163+         } else  {
164+             if  (grepl(" ^/" path )) {
165+                 warning(" removing leading '/'" 
166+                 path  <-  sub(" ^/+" " " path )
167+             }
161168        }
162169        if  (grepl(" ^~" path ))
163170            stop(" path starts with '~'" 
0 commit comments