[Rd] [R] Open a file which name contains a tilde
Berry, Charles
ccberry @end|ng |rom uc@d@edu
Fri Jun 7 18:08:28 CEST 2019
> On Jun 6, 2019, at 2:04 PM, Richard O'Keefe <raoknz using gmail.com> wrote:
>
> How can expanding tildes anywhere but the beginning of a file name NOT be
> considered a bug?
>
>
I think that that IS what libreadline is doing if one allows a whitespace separated list of file names.
As reported in R-help,
https://www.mail-archive.com/r-help@r-project.org/msg254116.html
path.expand seems to expand tildes beginning whitespace separated strings that could be filenames, but not other tildes.
Thus,
> path.expand("~/.newsrc ~/.R/*") # expands both tildes
[1] "/Users/cberry/.newsrc /Users/cberry/.R/*"
> path.expand("~/.newsrc~/.R/*") # expands only the first
[1] "/Users/cberry/.newsrc~/.R/*"
>
This could be a feature if what one wanted was to pass the result to a system command that will process multiple file arguments, e.g.
> system(paste( "wc", path.expand("~/.newsrc ~/.R/*"))) # run wc on some files
I doubt that this was intended by R-core, but perhaps the readline devs had this in mind.
Chuck
> On Thu, 6 Jun 2019 at 23:04, Ivan Krylov <krylov.r00t using gmail.com> wrote:
>
>> On Wed, 5 Jun 2019 18:07:15 +0200
>> Frank Schwidom <schwidom using gmx.net> wrote:
>>
>>> +> path.expand("a ~ b")
>>> [1] "a /home/user b"
>>
>>> How can I switch off any file crippling activity?
>>
>> It doesn't seem to be possible if readline is enabled and works
>> correctly.
>>
>> Calls to path.expand [1] end up [2] in R_ExpandFileName [3], which
>> calls R_ExpandFileName_readline [4], which uses libreadline function
>> tilde_expand [5]. tilde_expand seems to be designed to expand '~'
>> anywhere in the string it is handed, i.e. operate on whole command
>> lines, not file paths.
>>
>> I am taking the liberty of Cc-ing R-devel in case this can be
>> considered a bug.
>>
>> --
>> Best regards,
>> Ivan
>>
>> [1]
>>
>> https://github.com/wch/r-source/blob/12d1d2d232d84aa355e333348b81180a0e2c6f2f/src/main/names.c#L807
>>
>> [2]
>>
>> https://github.com/wch/r-source/blob/12d1d2d232d84aa355e333348b81180a0e2c6f2f/src/main/platform.c#L1915
>>
>> [3]
>>
>> https://github.com/wch/r-source/blob/12d1d2d232d84aa355e333348b81180a0e2c6f2f/src/unix/sys-unix.c#L147
>>
>> [4]
>>
>> https://github.com/wch/r-source/blob/12d1d2d232d84aa355e333348b81180a0e2c6f2f/src/unix/sys-std.c#L494
>>
>> [5]
>> https://git.savannah.gnu.org/cgit/readline.git/tree/tilde.c?h=devel#n187
>>
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
> [[alternative HTML version deleted]]
>
More information about the R-devel
mailing list