I case someone runs into this topic. I just found the following comment from 2012 on BugZilla explaining why Sys.setlocale() does *not* return invisibly contrary to most++ other setters in R:
PR#15128: Sys.setlocale() - return previous setting invisibly? Brian Ripley on 2012-12-09 16:53:43 UTC: > It was a deliberate decision. Unlike options() the locale is usually set at > startup and it is major thing to change it in a session--and it is usually > only done recording the previous value to return to. The author certainly > wanted to see what he was changing from in a session. https://bugs.r-project.org/bugzilla/show_bug.cgi?id=15128#c1 /Henrik On Tue, Mar 20, 2018 at 2:11 PM Henrik Bengtsson <henrik.bengts...@gmail.com> wrote: > > Contrary to, say, Sys.setenv(), Sys.setlocale() returns it's value > visibly. This means that if you for instance add: > > Sys.setlocale("LC_COLLATE", "C") > > to your .Rprofile file, it will print: > > [1] "C" > > at startup. The workaround is to wrap the call in invisible(), but I'd > argue that any "setter" function should return invisibly. > > Some more details: > > > withVisible(Sys.setlocale("LC_COLLATE", "C")) > $value > [1] "C" > > $visible > [1] TRUE > > > withVisible(Sys.setenv(FOO = "C")) > $value > [1] TRUE > > $visible > [1] FALSE > > /Henrik ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel