[Rd] should Sys.glob() cope with a UNC windows path beginning with backslashes?

Tony Plate tplate at acm.org
Sat Jun 27 01:50:26 CEST 2009


I find that Sys.glob() doesn't like UNC paths where the initial slashes are backslashes.  The help page for Sys.glob() doesn't specificly mention UNC paths, but does say: "File paths in Windows are interpreted with separator \ or /."  Is the failure to treat a path beginning with a double-backslash as a UNC network drive path the intended behavior?

E.g., on a Windows system where \\foo is a network drive and \\foo\bar exists, I see:

> Sys.glob("//foo/bar")
[1] "//foo/bar"
> Sys.glob("//foo\\bar")
[1] "//foo\\bar"
> Sys.glob("\\\\foo/bar")
character(0)
> Sys.glob("\\\\foo\\bar")
> 
(the pattern of behavior seems to be that initial backslashes are not equivalent to forward slashes, but later backslashes are.)

This is not a big deal, but I noticed it because it results in Rcmd check giving a spurious warning when started from a cygwin shell with a working directory that is a network drive specified as a UNC path.  This happens because mandir in tools:::.writePkgIndices has the form \\foo/bar/R/packages/mypkg/man, which results in the false warning "there is a 'man' dir but no help pages in this package."  A simple workaround was to use a drive-letter mount for the network drive.

> sessionInfo()
R version 2.9.1 (2009-06-26) 
i386-pc-mingw32 

locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
> 

-- Tony Plate



More information about the R-devel mailing list