On 2017-05-24, Duncan Murdoch wrote: [...] > Okay, how about if we weaken the test? [...] > try > > stopifnot(path.expand(paste0("~/", filename)) == > paste0(path.expand("~/"), filename)) >
Nope: > ## path.expand shouldn't translate to local encoding PR#17120 > filename <- "\U9b3c.R" > > #stopifnot(identical(path.expand(paste0("~/", filename)), > stopifnot(path.expand(paste0("~/", filename)) == + paste0(path.expand("~/"), filename)) Error: path.expand(paste0("~/", filename)) == paste0(path.expand("~/"), .... is not TRUE Execution halted The problem is that path.expand(), or do_pathexpand() for non-windoze calls translateChar() which in turn calls translateToNative() which is unknown to make check (but not to R --vanilla) under my setup. Once it is unknown, there seems to be no way to force an encoding: > ## path.expand shouldn't translate to local encoding PR#17120 > filename <- "\U9b3c.R" > print(Encoding(filename)) [1] "UTF-8" > > y1 <- paste0("~/", filename) > print(Encoding(y1)) [1] "UTF-8" > > y2 <- path.expand(y1) > print(Encoding(y2)) [1] "unknown" > > y3a <- iconv(y2, to="UTF-8") > print(Encoding(y3a)) [1] "unknown" > > y3b <- enc2utf8(y2) > print(Encoding(y3b)) [1] "unknown" > > Encoding(y2) <- "UTF-8" > print(Encoding(y2)) [1] "unknown" > h. -- +--- | Hiroyuki Kawakatsu | Business School, Dublin City University | Dublin 9, Ireland. Tel +353 (0)1 700 7496 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel