Theo Buehler <t...@math.ethz.ch> writes:

> On Sat, Mar 05, 2016 at 01:41:32AM +0100, Timo Buhrmester wrote:
>> From src/bin/cp/cp.c:
>> >    while ((ch = getopt(argc, argv, "HLNPRfailprv")) != -1) 
>> >            [...]
>> >            case 'i':
>> >                    iflag = isatty(fileno(stdin));
>> The -i in cp -i is ignored if standard input isn't a tty.
>> 
>> This breaks doing something along the lines of ``yes n | cp -i [...]''
>> (obviously overwriting files that weren't supposed to be overwritten,
>> as well was rendering the only way to stop cp from overwriting existing
>> files ineffective in scripts)
>> 
>> Our man page also doesn't mention this twist.
>> 
>
> So netbsd decided to commit this diff with the following commit message:
>
>   The '-i' flag should work regardless of whether the standard input is
>   a terminal.  The Open Group notes this historic behavior and correctly
>   notes that it doesn't make much sense.  Note also, that mv(1) has
>   always respected its '-i' regardless of whether the standard input is
>   a terminal.
>   
>   From Timo Buhrmester.
>   
>   
> http://cvsweb.netbsd.org/bsdweb.cgi/src/bin/cp/cp.c?rev=1.59&content-type=text/x-cvsweb-markup
>
> I can't see any downside to it and if some people were bitten by this,
> why not?

I can't see any downside either.  ok jca@

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE


Reply via email to