From 7465b002f9c8850a279568f832ff238ad5ba1476 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Thu, 19 Jul 2007 10:14:41 +0200 Subject: "cp -i --update older newer" no longer prompts; same for mv * src/copy.c (copy_internal): Perform "update" check before the possible interactive prompt. Reported by zeno_AT_biyg_DOT_org in * tests/mv/update: Add tests for the above. * NEWS: Mention the bug fix. --- tests/mv/update | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'tests/mv/update') diff --git a/tests/mv/update b/tests/mv/update index 0c0602414..6c3d14983 100755 --- a/tests/mv/update +++ b/tests/mv/update @@ -1,7 +1,7 @@ #!/bin/sh # make sure --update works as advertised -# Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc. +# Copyright (C) 2001, 2004, 2006-2007 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -46,11 +46,16 @@ fi fail=0 -for cp_or_mv in cp mv; do - # This is a no-op. - $cp_or_mv --update old new || fail=1 - case "`cat new`" in new) ;; *) fail=1 ;; esac - case "`cat old`" in old) ;; *) fail=1 ;; esac +for interactive in '' -i; do + for cp_or_mv in cp mv; do + # This is a no-op, with no prompt. + # With coreutils-6.9 and earlier, using --update with -i would + # mistakenly elicit a prompt. + $cp_or_mv $interactive --update old new < /dev/null > out 2>&1 || fail=1 + test -s out && fail=1 + case "`cat new`" in new) ;; *) fail=1 ;; esac + case "`cat old`" in old) ;; *) fail=1 ;; esac + done done # This will actually perform the rename. -- cgit v1.2.3-54-g00ecf