From mick.jordan at oracle.com  Wed Apr 29 03:11:54 2015
From: mick.jordan at oracle.com (Mick Jordan)
Date: Tue, 28 Apr 2015 18:11:54 -0700
Subject: [Rd] --interactive and -f/-e
Message-ID: <55402FDA.5070203@oracle.com>

I was surprised by this:

R --interactive -e 'interactive()'

bash-3.2$ R -q -e 'interactive()' --interactive
 > interactive()
[1] FALSE
 >

as the command options document says that --interactive should force 
interactive=TRUE:

" When *R* is run in a terminal (via |Rterm.exe| on Windows), it assumes 
that it is interactive if ?stdin? is connected to a (pseudo-)terminal 
and not if ?stdin? is redirected to a file or pipe. Command-line options 
--interactive (Unix) and --ess (Windows, |Rterm.exe|) override the 
default assumption"

But the code in system.c does this:

R_Interactive = R_Interactive && (force_interactive || isatty(0));

R_Interactive is set to FALSE in the -e/-f processing, and 
force_interactive is set to TRUE in the --interactive processing, so 
there is no way that it can ever override -e/-f. It seems that 
--interactive can only have an effect for something like a pipe. Is this 
actually the expected behavior?

Mick Jordan




	[[alternative HTML version deleted]]



[Rd] --interactive and -f/-e
Mick Jordan