1/* 2 * Copyright (c) 1989, 1993, 1994 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Ken Smith of The State University of New York at Buffalo. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 19 unchanged lines hidden (view full) --- 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * |
36 * $Id: mv.c,v 1.14 1997/09/28 10:41:40 wosch Exp $ |
37 */ 38 39#ifndef lint 40static char const copyright[] = 41"@(#) Copyright (c) 1989, 1993, 1994\n\ 42 The Regents of the University of California. All rights reserved.\n"; 43#endif /* not lint */ 44 --- 107 unchanged lines hidden (view full) --- 152 */ 153 if (!fflg && !access(to, F_OK)) { 154 155 /* prompt only if source exist */ 156 if (lstat(from, &sb) == -1) { 157 warn("%s", from); 158 return (1); 159 } |
160 161#define YESNO "(y/n [n]) " |
162 ask = 0; 163 if (iflg) { |
164 (void)fprintf(stderr, "overwrite %s? %s", to, YESNO); |
165 ask = 1; 166 } else if (access(to, W_OK) && !stat(to, &sb)) { 167 strmode(sb.st_mode, modep); |
168 (void)fprintf(stderr, "override %s%s%s/%s for %s? %s", |
169 modep + 1, modep[9] == ' ' ? "" : " ", 170 user_from_uid(sb.st_uid, 0), |
171 group_from_gid(sb.st_gid, 0), to, YESNO); |
172 ask = 1; 173 } 174 if (ask) { 175 first = ch = getchar(); 176 while (ch != '\n' && ch != EOF) 177 ch = getchar(); |
178 if (first != 'y' && first != 'Y') { 179 (void)fprintf(stderr, "not overwritten\n"); |
180 return (0); |
181 } |
182 } 183 } 184 if (!rename(from, to)) 185 return (0); 186 187 if (errno != EXDEV) { 188 warn("rename %s to %s", from, to); 189 return (1); --- 148 unchanged lines hidden --- |