[Rd] test fails when requesting LC_CTYPE
Kasper Daniel Hansen
kasperdanielhansen at gmail.com
Sat May 20 02:09:24 CEST 2017
I rebuilt R with
export LC_CTYPE=en_US.UTF-8
and the test still fail. Surprisingly, when I run R from the bin directory
and execute the test code, it runs without error:
> oloc <- Sys.getlocale("LC_CTYPE")
> mbyte.lc <- {
+ if(.Platform$OS.type == "windows")
+ "English_United States.28605"
+ else if(grepl("[.]UTF-8$", oloc, ignore.case=TRUE)) # typically
nowadays
+ oloc
+ else
+ "C.UTF-8" # or rather "en_US.UTF-8" (? from system("locale -a|
fgrep .UTF-8") )
+ }
> stopifnot(identical(Sys.setlocale("LC_CTYPE", mbyte.lc), mbyte.lc))
> oloc
[1] "en_US.UTF-8"
> mbyte.lc
[1] "en_US.UTF-8"
On Fri, May 19, 2017 at 7:29 PM, Kasper Daniel Hansen <
kasperdanielhansen at gmail.com> wrote:
> On RedHat Enterprise Linux 6, the test below fails (this is using the
> stock GCC 4.4.7) from R-devel r72707. LC_CTYPE is unset when I run it, but
> LANG=en_US.UTF-8
>
> It also failed "yesterday" where as far as I recall the test code looked a
> bit different.
>
> Best,
> Kasper
>
> > ## Results differed by platform, but some gave incorrect results on
> string 10.
> >
> >
> > ## str() on large strings (in multibyte locales; changing locale may not
> work everywhere
> > oloc <- Sys.getlocale("LC_CTYPE")
> > mbyte.lc <- {
> + if(.Platform$OS.type == "windows")
> + "English_United States.28605"
> + else if(grepl("[.]UTF-8$", oloc, ignore.case=TRUE)) # typically
> nowadays
> + oloc
> + else
> + "C.UTF-8" # or rather "en_US.UTF-8" (? from system("locale -a|
> fgrep .UTF-8") )
> + }
> > stopifnot(identical(Sys.setlocale("LC_CTYPE", mbyte.lc), mbyte.lc))
> Error: identical(Sys.setlocale("LC_CTYPE", mbyte.lc), mbyte.lc) is not
> TRUE
> In addition: Warning message:
> In Sys.setlocale("LC_CTYPE", mbyte.lc) :
> OS reports request to set locale to "C.UTF-8" cannot be honored
> Execution halted
>
[[alternative HTML version deleted]]
More information about the R-devel
mailing list