[Rd] reg-tests-1d.R fails in r72721

Duncan Murdoch murdoch.duncan at gmail.com
Wed May 24 16:16:28 CEST 2017


On 24/05/2017 9:59 AM, Hiroyuki Kawakatsu wrote:
> 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

Thanks.  I've made that test conditional on running on Windows, and 
re-opened bug 17120.  I indicated that it's now a Unix-only bug.

This may be a first:  a case where R handles non-native characters 
better in Windows than it does in Unix.  I'm sure this will show up in a 
Microsoft ad soon :-).

Duncan Murdoch

> 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.
>



More information about the R-devel mailing list