On 1/27/2009 2:02 PM, William Dunlap wrote:
You can put a trace on normalizePath to get the name of the offending
input file name. E.g.,
> trace(normalizePath, Quote(cat("normalizePath: path=", path,
"\n")))
Tracing function "normalizePath" in package "utils"
[1] "normalizePath"
> install.packages("sn")
trying URL
'http://cran.fhcrc.org/bin/windows/contrib/2.8/sn_0.4-10.zip'
Content type 'application/zip' length 320643 bytes (313 Kb)
opened URL
downloaded 313 Kb
Tracing normalizePath(lib) on entry
normalizePath: path= E:/PROGRA~1/R/R-28~1.1/library
package 'sn' successfully unpacked and MD5 sums checked
Tracing normalizePath(tmpd) on entry
normalizePath: path=
C:\DOCUME~1\wdunlap\LOCALS~1\Temp\Rtmp2XNJo1/downloaded_packages
The downloaded packages are in
C:\Documents and Settings\wdunlap\Local
Settings\Temp\Rtmp2XNJo1\downloaded_packages
updating HTML package descriptions
It looks like your second call to normalizePath caused the problem.
If the error message from normalizePath included the offending file
name it would be easier to track down the problem. E.g.,
> normalizePath(c(".", "no such file.txt"))
Error in normalizePath(path) :
path[2]="no such file.txt": The system cannot find the file
specified
instead of just
> normalizePath(c(".", "no such file.txt"))
Error in normalizePath(path) :
path[2]: The system cannot find the file specified
The following, barely tested, patch does this on Windows. I don't
know if
...[printf]... "%ls", filenameToWchar(string,FALSE)
is the proper way to display an R string.
I think your patch looks okay; I'll put it in. Thanks!
Duncan Murdoch
Index: extra.c
===================================================================
--- extra.c (revision 47193)
+++ extra.c (working copy)
@@ -1107,13 +1107,13 @@
if (!GetFullPathNameW(filenameToWchar(el, FALSE), MAX_PATH,
wtmp, &wtmp2)
|| !GetLongPathNameW(wtmp, wlongpath, MAX_PATH))
- errorcall(call, "path[%d]: %s", i+1,
formatError(GetLastError()));
+ errorcall(call, "path[%d]=\"%ls\": %s", i+1,
filenameToWchar(el,FALSE), formatError(GetLastError()));
wcstoutf8(longpath, wlongpath, wcslen(wlongpath)+1);
SET_STRING_ELT(ans, i, mkCharCE(longpath, CE_UTF8));
} else {
if (!GetFullPathName(translateChar(el), MAX_PATH, tmp,
&tmp2)
|| !GetLongPathName(tmp, longpath, MAX_PATH))
- errorcall(call, "path[%d]: %s", i+1,
formatError(GetLastError()));
+ errorcall(call, "path[%d]=\"%ls\": %s", i+1,
filenameToWchar(el, FALSE), formatError(GetLastError()));
SET_STRING_ELT(ans, i, mkChar(longpath));
}
}
It might be nice to include the current directory also.
Bill Dunlap
TIBCO Software Inc - Spotfire Division
wdunlap tibco.com
-----Original Message-----
From: r-devel-boun...@r-project.org
[mailto:r-devel-boun...@r-project.org] On Behalf Of
partho_bhowm...@ml.com
Sent: Tuesday, January 27, 2009 7:15 AM
To: r-de...@stat.math.ethz.ch
Cc: r-b...@r-project.org
Subject: [Rd] Package (PR#13475)
Full_Name: Partho Bhowmick
Version: 2.8.1
OS: Windows XP
Submission from: (NULL) (199.43.48.131)
While trying to install package sn (I have tried multiple mirrors),
I get the following message
trying URL
'http://www.revolution-computing.com/cran/bin/windows/contrib/
2.8/sn_0.4-10.zip'
Content type 'application/zip' length 320643 bytes (313 Kb)
opened URL
downloaded 313 Kb
package 'sn' successfully unpacked and MD5 sums checked
Error in normalizePath(path) :
path[1]: The system cannot find the file specified
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel