Tomas Kalibera
2021-Oct-18 15:02 UTC
[Rd] Fwd: Using existing envars in Renviron on friendly Windows
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 at 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 at 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 at 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 at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel
MichaĆ Bojanowski
2021-Oct-20 14:31 UTC
[Rd] Fwd: Using existing envars in Renviron on friendly Windows
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? On Mon, Oct 18, 2021 at 5:02 PM Tomas Kalibera <tomas.kalibera at 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 at 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 at 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 at 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 at r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel