[Rd] Fwd: Using existing envars in Renviron on friendly Windows
Martin Maechler
m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Thu Oct 21 17:18:30 CEST 2021
>>>>> Michał Bojanowski
>>>>> on Wed, 20 Oct 2021 16:31:08 +0200 writes:
> Hello Tomas,
> Yes, that's accurate although rather terse, which is perhaps the
> reason why I did not realize it applies to my case.
> How about adding something in the direction of:
> 1. Continuing the cited paragraph with:
> In particular, on Windows it may be necessary to quote references to
> existing environment variables, especially those containing file paths
> (which include backslashes). For example: `"${WINVAR}"`.
> 2. Add an example (not run):
> # On Windows do quote references to variables containing paths, e.g.:
> # If APPDATA=C:\Users\foobar\AppData\Roaming
> # to point to a library tree inside APPDATA in .Renviron use
> R_LIBS_USER="${APPDATA}"/R-library
> Incidentally the last example is on backslashes too.
> What do you think?
I agree that adding an example really helps a lot in such cases,
in my experience, notably if it's precise enough to be used +/- directly.
> On Mon, Oct 18, 2021 at 5:02 PM Tomas Kalibera <tomas.kalibera using gmail.com> wrote:
>>
>>
>> On 10/15/21 6:44 PM, Michał Bojanowski wrote:
>> > Perhaps a small update to ?.Renviron would be in order to mention that...
>>
>> Would you have a more specific suggestion how to update the
>> documentation? Please note that it already says
>>
>> "‘value’ is then processed in a similar way to a Unix shell: in
>> particular the outermost level of (single or double) quotes is stripped,
>> and backslashes are removed except inside quotes."
>>
>> Thanks,
>> Tomas
>>
>> > On Fri, Oct 15, 2021 at 6:43 PM Michał Bojanowski <michal2992 using gmail.com> wrote:
>> >> Indeed quoting works! Kevin suggested the same, but he didnt reply to the list.
>> >> Thank you all!
>> >> Michal
>> >>
>> >> On Fri, Oct 15, 2021 at 6:40 PM Ivan Krylov <krylov.r00t using gmail.com> wrote:
>> >>> Sorry for the noise! I wasn't supposed to send my previous message.
>> >>>
>> >>> On Fri, 15 Oct 2021 16:44:28 +0200
>> >>> Michał Bojanowski <michal2992 using gmail.com> wrote:
>> >>>
>> >>>> AVAR=${APPDATA}/foo/bar
>> >>>>
>> >>>> Which is a documented way of referring to existing environment
>> >>>> variables. Now, with that in R I'm getting:
>> >>>>
>> >>>> Sys.getenv("APPDATA") # That works OK
>> >>>> [1] "C:\\Users\\mbojanowski\\AppData\\Roaming"
>> >>>>
>> >>>> so OK, but:
>> >>>>
>> >>>> Sys.getenv("AVAR")
>> >>>> [1] "C:UsersmbojanowskiAppDataRoaming/foo/bar"
>> >>> Hmm, a function called by readRenviron does seem to remove backslashes,
>> >>> but not if they are encountered inside quotes:
>> >>>
>> >>> https://github.com/r-devel/r-svn/blob/3f8b75857fb1397f9f3ceab6c75554e1a5386adc/src/main/Renviron.c#L149
>> >>>
>> >>> Would AVAR="${APPDATA}"/foo/bar work?
>> >>>
>> >>> --
>> >>> Best regards,
>> >>> Ivan
>> > ______________________________________________
>> > R-devel using r-project.org mailing list
>> > https://stat.ethz.ch/mailman/listinfo/r-devel
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list